1. Field of the Invention
The present invention relates to a numerical controller which operates in a manner to superpose a plurality of pieces of tabular data.
2. Description of the Related Art
As a method for synchronously driving and controlling respective control axes in synchronization with a motion of a reference axis, an operational function based on tabular data is well known, in which positional information of control axes is preliminarily stored in tabular data, which is provided in a memory or the like, in association with a position of a reference axis, and the respective control axes are operated in synchronization with the reference axis based on the information stored in the tabular data.
In the operational function based on tabular data, tabular data in which a position of each of respective axes or an auxiliary function such as an M code based on a time, a position of an axis or spindle are set is preliminarily stored in a memory (or a storage device connected by a network), and respective axes or the auxiliary function are controlled while sequentially reading the tabular data.
In Japanese Patent Application Laid-Open No. 59-177604 and Japanese Patent Application Laid-Open No. 2003-303005, a path table operational function utilizing the operational function based on tabular data or a numerical controller carrying out a control called “electronic cam control” is disclosed. Accordingly, a movement of a tool free from a machining program is enabled and reduction in machining time and increase in machining precision can be realized.
In prior art operation based on tabular data, reference values described in tabular data and coordinate values, which correspond to the reference values, of an axis or a spindle are set as control points and a movement amount is calculated based on these two control points which are set as a start point and an end point. Specifically, from a reference value and a coordinate value of an axis or a spindle on a control point which is a start point and a reference value and a coordinate value of an axis or a spindle on a control point which is an end point, difference between reference values of two points and a difference between coordinate values of an axis or a spindle of the two points are calculated and a movement amount per reference value unit is calculated.
FIG. 7 illustrates an example of prior art axis control using tabular data.
Tabular data <TIME_TABLE_0001_X> is tabular data which controls an X axis in reference to time. L denotes a reference value (reference time: msec unit) and X denotes a coordinate value (mm unit), which corresponds to the reference value, of the X axis which is a control axis. When a current reference value is 1000 msec, the X axis (control axis) moves between two control points which are a start point on a reference value 1000 msec and a coordinate value 100.0 mm and an end point on a reference value 2000 msec and a coordinate value 200.0 mm.
FIG. 8 is a schematic block diagram illustrating a numerical controller for calculating a movement amount.
A numerical controller 100 notifies command blocks which are sequentially read by a read unit (not illustrated) to a distribution processing unit 130 as two control points (a start point and an end point), and, the distribution processing unit 130 obtains, from a difference in the reference values between these two control points and a difference in the coordinate values between these two control points, a movement amount of an axis per unit reference value and notifies the obtained movement amount to a motor control unit (not illustrated).
In the example of the X axis control using the tabular data <TIME_TABLE_0001_X>, a start point is set on the reference value 1000 msec and the coordinate value 100.0 mm, and an end point is set on the reference value 2000 msec and the coordinate value 200.0 mm, and then the distribution processing unit 130 calculates, from the difference in the reference value (2000 msec−1000 msec=1000 msec) and the difference in the coordinate value (200.0 mm−100.0 mm=100.0 mm), a movement amount of the control axis per unit reference value as 0.1 mm/1 msec.
In such prior art technique, reference values and coordinate values of an axis or a spindle, which are described in the tabular data, are dealt as a start point and an end point for calculating a movement amount. Therefore, in a case where movement amounts are outputted at once at a specific reference value, such as a correcting amount, it is necessary to describe coordinate values taking into account the correcting amount for control points to be a start point and an end point. Further, a movement amount of a control axis is calculated from a difference between two control points which are to be a start point and an end point. Therefore, when a coordinate value of one block is modified, coordinate values of blocks following the modified block need to be relatively shifted as well and accordingly, a modifying amount of tabular data is increased. Further, a control point which is to be an end point of the previous block needs to be added immediately before the correcting amount is outputted, and thus there is such problem that tabular data is increased in capacity.
FIG. 9 illustrates an example of an axis control of tabular data <TIME_TABLE_0002_X> which is obtained by modifying tabular data <TIME_TABLE_0001_X> so that a correcting amount 1.0 mm is outputted at a reference value 1500 msec of tabular data <TIME_TABLE_0001_X>.
As illustrated in FIG. 9, in order to output the correcting amount 1.0 mm at the reference value 1500 msec, a coordinate value 149.0 mm needs to be specified at a reference value 1499 msec which is immediately before the correcting amount is outputted so that a motion until immediately before the correcting amount is outputted is same as a motion of a case where the correcting amount is not outputted. Here, a block (“L1499X149.0”) for outputting the correcting amount is added immediately before the correcting amount is outputted, so that such problem arises that tabular data is increased in capacity.
Further, at the reference value 1500 msec at which the correcting amount is outputted, a coordinate value 151.0 mm which is obtained by adding the correcting amount 1.0 mm to a coordinate value 150.0 mm of a case where the correcting amount is not outputted is specified (“L1500X151.0”). Accordingly, a movement amount of 1.0 mm which is equivalent to the correcting amount is outputted. Further, at the reference value 2000 msec, a coordinate value of 201.0 mm which is obtained by adding the correcting amount 1.0 mm to the coordinate value 200.0 mm of a case where the correcting amount is not outputted is specified (“L2000X201.0”) so that relative movement amounts from the reference value 1500 msec to the reference value 2000 msec become equivalent to those before the correcting amount is outputted.
In a similar manner, in a block after the correcting amount is outputted, a coordinate value which is obtained by adding accumulation of correcting amounts to the coordinate value of a case where the correcting amount is not outputted needs to be specified. Thus, it is found that a modifying amount is increased when tabular data which is once produced is modified.